Skip to content

feat: add tautobase#658

Open
lwehrhan wants to merge 7 commits into
ddmms:mainfrom
lwehrhan:feat/add-tautobase
Open

feat: add tautobase#658
lwehrhan wants to merge 7 commits into
ddmms:mainfrom
lwehrhan:feat/add-tautobase

Conversation

@lwehrhan

@lwehrhan lwehrhan commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Pre-review checklist for PR author

PR author must check the checkboxes below when creating the PR.

Summary

The tautobase is a dataset of 1,391 tautomer pairs of organic small molecules. The geometries were refined at xtb level of theory. QM single point energies (reference for this benchmark) were re-computed by InstaDeep in-house at ωB97M-D3(BJ)/def2-TZVPPD level of theory.

Linked issue

Resolves #641

Progress

  • Calculations
  • Analysis
  • Application
  • Documentation

Testing

New decorators/callbacks

@ElliottKasoar ElliottKasoar added the new benchmark Proposals and suggestions for new benchmarks label Jul 8, 2026
Comment thread docs/source/user_guide/benchmarks/molecular_reactions.rst
@joehart2001

joehart2001 commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Hey @lwehrhan thanks for the pr! can you attach the data for us to upload please?

  • have a look at the element filtering?

docs: https://ddmms.github.io/ml-peg/developer_guide/filter.html

Comment thread ml_peg/analysis/molecular_reactions/tautomers/metrics.yml Outdated
@joehart2001

Copy link
Copy Markdown
Collaborator

I've added similar changes to the folmsbee benchmark, and apart from the comments/conflicts i think we're basically good to go. @ElliottKasoar could you take a look?

@ElliottKasoar ElliottKasoar left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great! Just a couple of minor suggestions/questions, plus if you could rebase/resolve conflicts with due to merging #429?

from ase import Atoms
from ase.calculators.calculator import Calculator
from ase.io import write
from mlipaudit.benchmarks.tautomers.tautomers import TautomersModelOutput

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add pytest.importorskip?

from typing import Any
from warnings import warn

from mlipaudit.benchmarks.tautomers.tautomers import TautomersModelOutput

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pytest.importorskip

List of all tautomer pair structure IDs.
"""
for model_name in MODELS:
path = CALC_PATH / model_name / "model_output.json"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See changes to Folmsbee - I'd recommend using "mock" as the source of truth, and raising an error telling people to run it if it's missing



@pytest.fixture
def struct_info() -> dict:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See changes to Folsmbee - if we save the json file downloaded by the calc to the calc outputs, we can just use that, and make it more self contained


structs_dir = OUT_PATH / "mock"
structs_dir.mkdir(parents=True, exist_ok=True)
for structure_id, pair in benchmark._tautomers_data.items():

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to check, the way you construct the Atoms here doesn't work quite the same way as in Folmsbee? There's no way to have a shared function for these? It's fine if not

Comment on lines +21 to +26
1. Reaction energy MAE

For each pair the reaction energy is the energy difference between the two
tautomers. The mean absolute error (MAE) between the predicted and reference
reaction energies is reported in kcal/mol, averaged across all pairs. Pairs on
which inference fails are excluded from the average.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add the second metric here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

external Contribution from external framework new benchmark Proposals and suggestions for new benchmarks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: new benchmark tautobase reaction energies

4 participants